/* 
 * File:   TabelaHash.h
 * Author: Pedro
 *
 * Created on 17 de Agosto de 2010, 08:50
 */

#ifndef TABELAHASH_H
#define	TABELAHASH_H
#include "Lista.h"
#include "../NoCelula.h"
#include "../tipos_definidos.h"

class TabelaHash {
public:
    Lista *Celulas[NUMHASH];
    TabelaHash();
    TabelaHash(const TabelaHash& orig);
    virtual ~TabelaHash();
    static int Hash(string lexema);
    void operator<<(NoCelula celula);
    void operator>>(NoCelula celula);
    Campo *procurarPor(string lexema);
    bool existeNaTabela(string lexema);
    void ExibeTabela();
private:
    static int Cod(string lexema);
    void Insere(NoCelula celula);
    void Remove(NoCelula celula);
};

#endif	/* TABELAHASH_H */

